import java.util.*;

public class Banque{

HashMap<String,Compte> comptes = new HashMap<String,Compte>();

Banque(){

}

public void ouvrirCompte(String nom, String password) throws Exception{
	if(CompteExiste(nom, password))
		throw new Exception("Compte déjà existant");
	this.comptes.put(nom,new Compte(nom,password,0));
}

public boolean CompteExiste(String nom, String password){
	if(this.comptes.containsKey(nom)){
		if(this.comptes.get(nom).getPassword() == password)
			return true;
		else
			return false;
	}
	else
		return false;
}

public int fermerCompte(String nom, String password) throws Exception{
	if(CompteExiste(nom, password)){
		int solde = this.comptes.get(nom).getSolde();
		this.comptes.remove(nom);
		return solde;
	}
	else
		throw new Exception("Compte inexistant");
}

public void deposer(int somme, Compte c) throws Exception{
	if(CompteExiste(c.getNom(), c.getPassword())){
		c.setSolde(solde(c)+somme);
	}
	else
		throw new Exception("Compte inexistant");
}

public int solde(Compte c) throws Exception{
	if(CompteExiste(c.getNom(), c.getPassword()))
		return c.getSolde();
	else
		throw new Exception("Compte inexistant");
}

public int retirer(int somme, Compte c) throws Exception{
	if(CompteExiste(c.getNom(), c.getPassword())){
		c.setSolde(solde(c)-somme);
		return c.getSolde();
	}
	else
		throw new Exception("Compte inexistant");
}

public Compte getCompte(String nom, String password) throws Exception{
	if(CompteExiste(nom, password))
		return this.comptes.get(nom);
	else
		throw new Exception("Compte inexistant");
}

}
